//class ToolTipPool
    
    export  class ToolTipPool
    {
       

        /* internal  */static getPool(arg1: Class): Array<any>
        {
            if (!(arg1 in ToolTipPool.pools)) 
            {
                var loc1;
                ToolTipPool.pools[arg1] = loc1 = new Array<any>();
            }
            return undefined;
        }

        public static getObject(arg1: Class, ... rest)
        {
            var loc1=ToolTipPool.getPool(arg1);
            if (loc1.length > 10) 
            {
                return loc1.pop();
            }
            return ToolTipPool.construct(arg1, rest);
        }

        public static disposeObject(arg1, arg2: Class=null): void
        {
            var loc2=null;
            if (!arg1) 
            {
                return;
            }
            if (!arg2) 
            {
                loc2 = flash.utils.getQualifiedClassName(arg1);
                arg2 = flash.utils.getDefinitionByName(loc2) as Class;
            }
            var loc1=ToolTipPool.getPool(arg2);
            loc1.push(arg1);
            return;
        }

        /* internal  */static construct(arg1: Class, arg2: Array<any>)
        {
            var loc1=arg2.length;
            switch (loc1) 
            {
                case 0:
                {
                    return new arg1();
                }
                case 1:
                {
                    return new arg1(arg2[0]);
                }
                case 2:
                {
                    return new arg1(arg2[0], arg2[1]);
                }
                case 3:
                {
                    return new arg1(arg2[0], arg2[1], arg2[2]);
                }
                case 4:
                {
                    return new arg1(arg2[0], arg2[1], arg2[2], arg2[3]);
                }
                case 5:
                {
                    return new arg1(arg2[0], arg2[1], arg2[2], arg2[3], arg2[4]);
                }
                case 6:
                {
                    return new arg1(arg2[0], arg2[1], arg2[2], arg2[3], arg2[4], arg2[5]);
                }
                case 7:
                {
                    return new arg1(arg2[0], arg2[1], arg2[2], arg2[3], arg2[4], arg2[5], arg2[6]);
                }
                case 8:
                {
                    return new arg1(arg2[0], arg2[1], arg2[2], arg2[3], arg2[4], arg2[5], arg2[6], arg2[7]);
                }
                case 9:
                {
                    return new arg1(arg2[0], arg2[1], arg2[2], arg2[3], arg2[4], arg2[5], arg2[6], arg2[7], arg2[8]);
                }
                case 10:
                {
                    return new arg1(arg2[0], arg2[1], arg2[2], arg2[3], arg2[4], arg2[5], arg2[6], arg2[7], arg2[8], arg2[9]);
                }
                default:
                {
                    return null;
                }
            }
        }

        private static /* var */pools: Map<any, any> /* flash.utils.Dictionary */;
    }

            ToolTipPool.pools = new Map<any, any> /* flash.utils.Dictionary */();
        